/*
 * Copyright 2008-2023 dexian.vip. All rights reserved.
 * Support: http://www.dexian.vip
 * License: http://www.dexian.vip/license
 */

package vip.dexian.core.entity.listener;

import vip.dexian.core.base.bean.BaseEntity;
import jakarta.persistence.PrePersist;
import jakarta.persistence.PreUpdate;

import java.time.LocalDateTime;

/**
 * 实体类监听器
 *
 * @author 挺好的 2023年05月30日 8:34
 */
public class EntityListener {

    /**
     * 保存前的操作
     *
     * @param entity
     *         实体类
     */
    @PrePersist
    public void prePersist (BaseEntity <?> entity) {
        LocalDateTime now = LocalDateTime.now();
        entity.setCreateDate(now);
        entity.setModifyDate(now);
        entity.setVersion(null);
        entity.setIsValid(true);
    }

    /**
     * 更新前操作
     *
     * @param entity
     *         实体类
     */
    @PreUpdate
    public void preUpdate (BaseEntity <?> entity) {
        entity.setModifyDate(LocalDateTime.now());
    }
}
